strsratio.mean=function(data,xi,yi,g,tauxi,ni,Ni){ data=as.name(data); g=g; stratnames=levels(g) xi=xi; yi=yi; tauxi=tauxi; ni=ni; Ni=Ni; muxi=tauxi/Ni mux=sum(tauxi)/N n=sum(ni); N=sum(Ni); fpci=(1-ni/Ni) cl.perc=sprintf("%.0f%%",.95*100) ybari=tapply(yi,g,mean); xbari=tapply(xi,g,mean) ri=ybari/xbari r.rs=sum((Ni/N)*ri) muhaty.rs=sum((Ni/N)*muxi*ri) x1i=xi[g=='A']; x2i=xi[g=='B'] y1i=yi[g=='A']; y2i=yi[g=='B'] s2ri.rs=c(sum((y1i-r1*x1i)^2)/(ni[1]-1),sum((y2i-r2*x2i)^2)/(ni[2]-1)) vhat.muhaty.rs=sum((Ni/N)^2*(fpci)*(s2ri.rs/ni)) bound=round(2*sqrt(vhat.muhaty.rs),2) lower=muhaty.rs-bound; upper=muhaty.rs+bound cat("","\n","Results from StRS with Ratio estimation: Data =",data,"\n","Approximate Level of Confidence =",cl.perc,"\n", "Strata =",stratnames,"\n","N =",N,"Ni =",Ni,"\n","n =",n,"ni =",ni,"\n","FPCs =",fpci,"\n", "Mu.RS =",muhaty.rs,"\n","Vhat Mu.RS =",vhat.muhaty.rs,"\n","Bound =",bound,"\n", "Lower Bound =",lower,"Upper Bound =",upper,"\n","") results=list(data=data,g=g,stratnames=stratnames,xi=xi,yi=yi,ni=ni,Ni=Ni,fpci=fpci, vhat.muhaty.rs=vhat.muhaty.rs,muhaty.rs=muhaty.rs,s2ri.rs=s2ri.rs,bound=bound,lower=lower,upper=upper,cl.perc=cl.perc) } # to use the function with its call: # strsratio.mean(data,xi,yi,g,muxi,tauxi,ni,Ni) # data: name of dataset, in quotes # yi: vector (data) # xi: vector (data) # g: vector of stratum # tauxi: vector of population taux or NA if not known (tauxi=Ni*muxi or Ni*xbari) # ni: vector of sample sizes # Ni: vector of population size